<template>
	<div>
		<el-card shadow="hover" header="贯标">
			<el-upload
			id="upll"
			ref="upload"
			:limit="1"
			:on-exceed="handleExceed"
			:on-change="handleChange"
			:auto-upload="false"
			>
				<template #trigger>
					<el-button size="default" class="mt15" type="primary">选择文件</el-button>
				</template>
				<el-button @click="readxyzcy" size="default" class="ml-3" type="success">
					<SvgIcon name="iconfont icon-step" />
					上传
				</el-button>
			</el-upload>
		</el-card>
	</div>
</template>
<script lang="ts">
import { toRefs, reactive, defineComponent, ref } from 'vue'
import { genFileId, ElMessage } from 'element-plus'
import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
import excel from '/@/common/excel'
import post from '/@/utils/post'
import { Session } from '/@/utils/storage'

export default defineComponent({
	name: 'guanbiao',
	setup() {
		const state = reactive({
			tableData: [],
			readyFile: null
		})
		const upload = ref<UploadInstance>()
		const handleExceed: UploadProps['onExceed'] = (files) => {
			upload.value!.clearFiles()
			const file = files[0] as UploadRawFile
			file.uid = genFileId()
			upload.value!.handleStart(file)
		}
		const handleChange: UploadProps['onChange'] = (files) => {
			state.readyFile = files
		}
		const exportExcel = (data: Array<Object>, head?: Array<Array<string>>) => {
			excel.exportExcelAutoHead(data, "贯标更新结果",head)
		}
		const readxyzcy = () => {
			let param = new FormData()       // 创建form对象     
      		param.append('file', state.readyFile.raw)    // 通过append向form对象添加数据
			post.postFile(param,'http://172.22.111.201:7777/api/neuyyfftool/excelImport/update/'+Session.get('drugUserInfo').shopId, {'Content-Type': 'multipart/form-data'}).then(res=>{
				if(res.data.successFlag != 0){
					ElMessage({
						showClose: true,
						duration: 5000,
						message: '商品贯标失败：'+ res.data.errorMessage,
						type: 'error',
					})
				} else {
					ElMessage({
						showClose: true,
						duration: 5000,
						message: '商品贯标更新完毕，详情请下载excel查看',
						type: 'success',
					})
					exportExcel(res.data.data,xyzcyHead())
				}
				
				
			})
			
		}
		const xyzcyHead = () => {
				return [['旧编码', '医保编码', '商品名称', '通用名', '项目类别（1药品，3耗材）', '商品规格', '单位', '产地', '批准文号', '生产企业', '云商品编码', '条形码', '拼音', '商品性质（0赠品，1商品）', '商品状态（0未启用，1启用，2停用）', '中包装数', '税率', '零售价', '拆零价格', '会员价', '药监编码', '医保名称', '有效期', '效期单位', '是否拆零（0否1是）', '功能主治', '用药禁忌', '储存条件', '是否医保(0否，1是)', '注册证号', '注册效期', '是否含麻药品(0否，1是)', '是否冷藏(0否，1是)', '是否双人验收(0否，1是)', '养护类型(一般养护为1重点养护为2)', '化学名称', '采购状态（1可用，2禁用）', '品牌', '中药标志(0否，1是)', '处方药标志(0否，1是)', '医药行业标志(0否，1是)', '质量状态（0待首营，1质量可用，2质量禁用）', '特殊药品', '剂型', '经营分类', '医保自付比例', '拆零数量', '拆零单位', '运输条件', '运输时限(小时)', '存储温度下限', '存储温度上限', '特管药品', '进口药标志(0否，1是)', '国家编码'],['原药品编码，必填项，不可重复', '当地医保目录编码，非必填项', '原药品名称，必填项', '原药品通用名，不填视为与药品名称一致，非必填项。\n***建议填写', '商品信息的项目类别，\n1--药品\n3--耗材\n不填视为1--药品', '原药品的规格，必填项', '原药品的单位，必填项', '原药品的产地，非必填项。\n***建议填写', '原药品的批准文号，非必填项。\n***建议填写', '原药品的生产企业，非必填项。\n***建议填写', '原当地药监目录编码，非必填项', '原药品的条形码，非必填项。\n***建议填写', '原药品的拼音简码或者是操作码，不填会根据名称生成，非必填项。\n***建议填写', '0--赠品\n1--商品(药品)\n不填视为1--药品，非必填项', '商品信息的是否可用状态，\n0--未启用(不可用)\n1--启用（可用）\n2--停用（不可用）\n不填视为1--启用，非必填项', '原药品的中包量，非必填项', '0--0.16\n1--0.13\n2--0\n3--0.03\n4--0.05\n5--0.09不填视为1--0.13，非必填', '药品的零售价，不填视为0，非必填项。\n***建议填写', '拆零药品的拆零价格，非必填项', '会员价，非必填项', '当地药监目录编码，非必填项', '当地医保目录名称，非必填项', '药品药盒上保质期，数字，非必填项', '药品药盒上保质期，非必填项 1——年，2——月，3——日', '药品是否能拆零：\n0--否\n1--是\n不填视为0\n非必填项', '药品说明书上的功能主治，非必填项', '药品说明书上的用药禁忌，非必填项', '0--常温\n1--阴凉\n2--冷冻\n不填视为0--常温，\n非必填项', '区分是否医保药品\n0--否\n1--是\n不填视为空。\n非必填项', '药品的注册证号，非必填项', '药品的注册证的注册有效期，必须日期格式，非必填项', '区分是否含麻药品\n0--否\n1--是\n不填视为0-否。\n非必填项。\n***建议填写', '区分是否冷链药品\n0--否\n1--是\n不填视为0-否。\n非必填项', '区分是否特殊药品，需要双人验收\n0--否\n1--是\n不填视为0-否。\n非必填项', '1--一般养护\n2--重点养护\n不填视为1--一般养护\n非必填项', '药品说明书上的化学名称，非必填项', '区分是否可以采购\n1--采购可用\n2--采购禁用\n不填视为1--采购可用\n非必填项', '药品品牌，非必填项', '区分是否是中药\n0--否\n1--是\n不填视为0--否\n非必填项。\n***建议填写', '区分是否是处方药\n0--否\n1--是\n不填视为0--否\n非必填项。\n***建议填写', '区分是否是药品\n0--否\n1--是\n不填视为1--是\n非必填项。\n***建议填写', '区分是否首营\n0--待首营\n1--质量可用\n2--质量禁用\n不填视为1--质量可用\n非必填项', '1--非特殊药品\n2--肽类激素\n3--蛋白同化制剂\n4--含特殊药品复方制剂\n6--终止妊娠，\n非必填项', '药品剂型，汉字，非必填项', '药品的经营分类，汉字，非必填项', '当地医保对照目录的自付比例，非必填项', '拆零药品的最小单位数量，非必填项', '拆零药品的最小单位，非必填项', '1--常温\n2--冷藏\n不填视为1--常温\n非必填项', '冷链药品的规定运输时限，数字，非必填想', '药品的存储温度范围，数字，非必填项', '药品的存储温度范围，数字，非必填项', '1--非特管药品\n2--毒性药品\n3--放射性药品\n4--麻醉药品\n5--一类精神药品，\n非必填项', '区分是否是进口药\n0--否\n1--是\n不填视为0--否\n非必填项', '进口药的国家编码，非必填项\n']]
		}
		return {
			readxyzcy,
			exportExcel,
			upload,
			handleExceed,
			handleChange,
			...toRefs(state),
		};
	}
});
</script>